/*
 * Exemplo.java
 */

package netwrokproject.redes;

import java.util.ArrayDeque;

import netwrokproject.enlace.Enlace;

public class TesteRede {

    static public FisicaT fisica1, fisica2, fisicag1, fisicag2;
    static public Enlace enlace1, enlace2, enlaceg1, enlaceg2;
    static public Rede redes1, redes2, redes3;
    //static public Transporte transporte1, transporte2, transporte3;

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
//        transporte1 = new Transporte((byte) 12);
//        transporte2 = new Transporte((byte) 22);
//        transporte3 = new Transporte((byte) 11); // gateway
        
        redes1 = new Rede("r1", "12","C:\\t1.txt"); // tem ip 12        
        redes2 = new Rede("r2", "22","C:\\t2.txt"); // tem ip 22
        redes3 = new Rede("r3", "11","C:\\t3.txt"); // tem ip 11
        
//        enlace1 = new Enlace(1, true, true);
//        enlace2 = new Enlace(2, true, true);
//        enlaceg1 = new Enlace(3, true, true);
//        enlaceg2 = new Enlace(3, true, true);
//        
//        fisica1 = new FisicaT();
//        fisica2 = new FisicaT();
//        fisicag1 = new FisicaT();
//        fisicag2 = new FisicaT();
//        
//        transporte1.setDown(redes1);
//        transporte2.setDown(redes2);
//        transporte3.setDown(redes3);
//        
//        redes1.setUp(transporte1);
//        redes1.setEnlace(enlace1);
//
//        redes2.setUp(transporte2);
//        redes2.setEnlace(enlace2);
//
//        redes3.setUp(transporte3);
//        redes3.setEnlace(enlaceg1);
//        redes3.setEnlace(enlaceg2);
//        
//        enlace1.setUp(redes1);
//        enlace1.setDown(fisica1);        
//        
//        enlace2.setUp(redes2);
//        enlace2.setDown(fisica2);        
//        
//        enlaceg1.setUp(redes3);
//        enlaceg1.setDown(fisicag1);
//        
//        enlaceg2.setUp(redes3);
//        enlaceg2.setDown(fisicag2);
//
//        fisica1.setUp(enlace1);
//        fisica2.setUp(enlace2);
//        fisicag1.setUp(enlaceg1);
//        fisicag2.setUp(enlaceg2);
//               
//        // Ligacoes
//        fisica1.setDown(fisicag1);
//        
//        fisica2.setDown(fisicag2);
//        
//        fisicag1.setDown(fisica1);
//        
//        fisicag2.setDown(fisica2);
//        
//        fisica1.start();
//        enlace1.start();
//        redes1.start();
//        transporte1.start();
//
//        fisica2.start();
//        enlace2.start();
//        redes2.start();
//        transporte2.start();
//              
//        fisicag1.start();
//        fisicag2.start();
//        enlaceg1.start();
//        enlaceg2.start();
//        redes3.start();
//        transporte3.start();
//       
        ArrayDeque<Byte> msg = new ArrayDeque<Byte>();
              
        msg.add(new Byte("-1"));
        msg.add(new Byte("-2"));
        msg.add(new Byte("-3"));
        msg.add(new Byte("-4"));
        msg.add(new Byte("-5"));
        msg.add(new Byte("-6"));
        msg.add(new Byte("-7"));
        msg.add(new Byte("-8"));
        msg.add(new Byte("-9"));
        msg.add(new Byte("-10"));
        msg.add(new Byte("-11"));
        msg.add(new Byte("-12"));
        msg.add(new Byte("-13"));
        msg.add(new Byte("-14"));
        

        // Simulacoes
        /*System.out.println(transporte1.getDown()+" "+transporte2.getDown()+" "+transporte3.getDown()+" ");
        System.out.println(redes1.getDown()+" "+redes2.getDown()+" "+redes3.getDown()+" ");
        System.out.println(enlace1.getDown()+" "+enlace2.getDown()+" "+enlaceg1.getDown() + " " + enlaceg2.getDown());
        System.out.println(fisica1.getDown()+" "+fisica2.getDown()+" "+fisicag1.getDown()+" "+fisicag2);*/
        
        //transporte2.envia(msg);
        //redes1.envia(msg,"12");
        //msg.addFirst((byte)1);
        //msg.addFirst((byte)2);
        
        //redes1.recebe(msg);
        //redes3.envia(msg, "12");
        redes3.receive(msg);
        System.exit(0);
      
    }

}
